The convergence of computers, voice communications, and the Internet has revolutionized the manner and speed by which people are able to communicate. People today have the capacity to communicate instantly using a variety of communication devices and methods. However, as the number of methods by which a person can communicate has increased, so has the possibility that a person may be communicating using one method when someone attempts to contact him or her with an alternate method. In such a situation, the person may be unavailable to receive communications. Generally, the terms “presence” or “presence awareness” refer to the concept of providing others with information about a user's ability or willingness to communicate. Currently, presence information is gathered and reported in network communication systems by unified communications (UC) applications or services.
Referring to FIG. 10, a prior art UC system is illustrated. For example, the UC system may be a commercially available UC service such as Lotus Sametime, a product of the IBM corporation, or one available from Microsoft, Cisco, Avaya, or other UC vendor.
The prior art system includes a number of client computers 1002 interconnected through a computer network 1008. The client computers 1002 typically are personal computers equipped with a UC Application 1004. For example, the UC Application 1004 may be Lotus Sametime or similar application. Each client computer 1002 may connect with computer network 1008 through one of a number of techniques, including cable modems, digital subscriber lines (DSL), and using wired or wireless interfaces. Also connected to computer network 1008 is a UC presence server 1006. For example, UC presence server 1006 may be a Lotus Sametime server. The UC presence server 1006 is used to keep track of the activities of users at client computers 1002 by communicating with the UC Application 1004 installed on each client computer 1002. The UC presence server 1006 also is connected to the public switched telephone network 1010 and a private branch exchange (PBX) 1012 to monitor the activities of users at a telephone 1014, such as whether a user at telephone 1014 or telephone 1016 is on a call received over PSTN 1010. For example, the UC presence server 1006 monitors whether the user at telephone 1014 is on a call received from telephone 1016 or mobile phone 1018 via PSTN 1010. The UC presence server 1006 may receive the call status of telephone 1014 from PBX 1012. Alternatively, a call may be routed to telephone 1014 through UC presence server 1006, which monitors this activity.
In the prior art system shown in FIG. 10 the UC presence server 1006 knows whether a user is on a call at telephone 1014 if the call was routed through the PSTN 1010 or PBX 1012. However, in many situations a caller attempts to call someone using a cellular network. In this scenario, when a call is received at a cellular mobile phone over a cellular network rather than the PSTN 1010 or PBX 1012, the UC presence server 1006 is unaware that the user has received and accepted a call on the user cellular mobile phone. As a result, there is a need to obtain presence information associated with user cellular mobile telephony usage.
In the prior art, the concept of using presence in communication systems is often applied in instant messaging (IM) systems. IM is an increasingly popular form of electronic communication that allows users of networked computers to communicate in real-time. In a typical IM system, an IM application is installed on the computer of each user. Users of the same IM service are distinguished from one another by user identifications (IDs). Contact lists (i.e., “buddy lists”) are also provided to allow users to save the user IDs of the people they most frequently communicate with.
An IM user initiates an IM session by selecting a user ID from his or her contact list and typing a message to the selected contact through a keyboard attached to the IM initiator's computer. The IM application transmits the IM to the IM application executing on the contacted user's (i.e., buddy's) computer. The IM application then displays the IM on the display terminal of the contacted user's computer. The contacted user may then either ignore the IM or respond to the IM by typing a message back to the IM initiator.
Most IM applications also provide information indicating whether a “buddy” in the user's contact list is available or unavailable to engage in an IM session. This presence information is provided to IM users in the form of presence status indicators or icons, which are typically shown next to the buddy's user ID in a user's contact list. Typical presence status indicators include: online, offline, busy (e.g., on the phone) or away from the computer (e.g., in a meeting). These presence status indicators are useful since, unlike traditional e-mail systems, an IM user need only check the presence status of the user to determine whether the other user is available for real-time messaging.
Many IM applications require an IM user to manually select from among a plurality of available presence status indicators in order to inform other IM users of their presence status. Other IM applications, such as the Microsoft UC client application, provide a limited capability of determining the presence status of a user automatically by tracking whether the user has interacted with his or her computer's keyboard or mouse during a predetermined time span (e.g., 15 minutes). This process allows the online/offline and present/away status to be determined without the user having to manually set his or her presence status preference. However, because the user may be present at the computer for an extended period of time without actually interacting with the computer's keyboard or mouse, monitoring and updating the presence status of the user using this approach is not very reliable.
Another shortcoming of prior art presence aware IM systems, and other presence aware real-time communication systems (e.g., voice over Internet protocol (VoIP), is that they do not determine the proximity of a user relative to the user's computer, other than for times when perhaps the user is interacting with the computer's keyboard or mouse. Finally, prior art presence aware IM systems, and other real-time communication systems, do not provide a reliable means for determining that a user has shifted presence to another mode of communicating (e.g., from a personal computer (PC) to use of a mobile device) or for conveying to other system users that the user may have shifted presence to another mode of communicating.
It would be desirable to have real-time communication methods and apparatuses for determining that a user being contacted has shifted presence to another mode of communicating, and systems and methods for alerting other users of the user's shift to another mode of communicating. For example, it would be desirable to know whether a user being contacted has shifted presence to communicating on his cellular mobile phone. Consequently, it is not unusual for an IM user to initiate an IM session, only to find out that the user being contacted is actually not really present or available to communicate at that moment in time.
As a result, there is a need for improved methods and apparatuses for gathering and delivering presence information.